package com.micro.service;

import com.micro.dto.TrainOrderDTO;
import com.micro.entity.TrainTicketOrder;
import com.micro.request.TicketCreatingRequest;

import java.util.List;

public interface TrainTicketOrderService {
    
    // 创建火车票订单
    void createOrder(TicketCreatingRequest request);
    
    // 根据用户名获取订单列表
    List<TrainTicketOrder> getOrdersByUsername(String username);
    
    // 根据用户名获取订单DTO列表
    List<TrainOrderDTO> getOrderDTOsByUsername(String username);
    
    // 根据订单ID获取订单
    TrainTicketOrder getOrderById(Long orderId);
    
    // 退票
    boolean refundOrder(Long orderId);
    
    // 根据用户ID获取订单列表
    List<TrainTicketOrder> getOrdersByUserId(Long userId);
    
    // 根据车票状态获取订单列表
    List<TrainTicketOrder> getOrdersByTicketStatus(Byte ticketStatus);
    
    // 根据列车ID获取订单列表
    List<TrainTicketOrder> getOrdersByTrainId(Long trainId);
}
